package cc.rengu.igas.momp.common.dao;

import cc.rengu.igas.momp.common.entity.*;

import java.util.List;

/**
 * 营销活动报表统计数据库操作接口定义
 *
 * @author liujinan
 * @version 1.0.0
 * @date 2020/4/1
 */
public interface StatisticsStatementInfoMapper {

    /**
     * 查询机构信息
     *
     * @param instId       法人机构号
     * @param orgCode      查询机构号
     * @param superOrgCode 上级机构号
     * @return java.util.List<Organization> 内管平台-机构管理表
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/14
     */
    public List<Organization> selectOrganization(String instId, String orgCode, String superOrgCode) throws Exception;

    /**
     * 查询减免类营销活动基本信息接口实现
     *
     * @param instId   法人机构号
     * @param mcNo     营销活动编号
     * @param mcName   营销活动名称
     * @param mcType   营销活动类型
     * @param mcStatus 营销活动状态
     * @param mcOrgId  查询机构号
     * @return java.util.List<StatisticsStatementQueryRespInfo> 营销活动统计信息报表中营销活动信息查询结果实体类
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/1
     */
    List<StatisticsStatementQueryRespInfo> selectMcMoneyOffListInfo(String instId, String mcNo, String mcName, String mcType, String mcStatus, String mcOrgId) throws Exception;

    /**
     * 查询卡券类营销活动基本信息接口实现
     *
     * @param instId   法人机构号
     * @param mcNo     营销活动编号
     * @param mcName   营销活动名称
     * @param mcType   营销活动类型
     * @param mcStatus 营销活动状态
     * @param mcOrgId  查询机构号
     * @return java.util.List<StatisticsStatementQueryRespInfo> 营销活动统计信息报表中营销活动信息查询结果实体类
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/1
     */
    List<StatisticsStatementQueryRespInfo> selectMcCouponListInfo(String instId, String mcNo, String mcName, String mcType, String mcStatus, String mcOrgId) throws Exception;

    /**
     * 查询对客营销活动统计信息
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMStat2C> 对客户营销活动统计表
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/1
     */
    List<TMStat2C> selectStatToClientListInfo(String instId, String mcNo) throws Exception;

    /**
     * 查询对客营销活动单日统计信息
     *
     * @param instId    法人机构号
     * @param mcNo      营销活动编号
     * @param transDate 交易日期
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMStat2CDay> 对客户营销活动单日统计表
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/1
     */
    List<TMStat2CDay> selectStatToClientDayListInfo(String instId, String mcNo, String transDate) throws Exception;

    /**
     * 商户对客统计报表 查询减免类营销活动基本信息接口实现
     *
     * @param instId    法人机构号
     * @param mcNo      营销活动编号
     * @param mcName    营销活动名称
     * @param mcType    营销活动类型
     * @param mcStatus  营销活动状态
     * @param mchntArea 商圈
     * @return java.util.List<cc.rengu.igas.momp.common.entity.StatisticsStatementQueryRespInfo> 营销活动统计信息报表中营销活动信息查询结果实体类
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/12
     */
    List<StatisticsStatementQueryRespInfo> selectStatToClientMcMoneyOffListInfo(String instId, String mcNo, String mcName, String mcType, String mcStatus, String mchntNo, String mchntArea) throws Exception;

    /**
     * 商户对客统计报表 查询卡券类营销活动基本信息接口实现
     *
     * @param instId    法人机构号
     * @param mcNo      营销活动编号
     * @param mcName    营销活动名称
     * @param mcType    营销活动类型
     * @param mcStatus  营销活动状态
     * @param mchntArea 商圈
     * @return java.util.List<cc.rengu.igas.momp.common.entity.StatisticsStatementQueryRespInfo> 营销活动统计信息报表中营销活动信息查询结果实体类
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/12
     */
    List<StatisticsStatementQueryRespInfo> selectStatToClientMcCouponListInfo(String instId, String mcNo, String mcName, String mcType, String mcStatus, String mchntNo, String mchntArea) throws Exception;

    /**
     * 查询商户对客营销活动统计信息
     *
     * @param instId  法人机构号
     * @param mcNo    营销活动编号
     * @param mchntNo 商户编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMStat2CMchnt>
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/1
     */
    List<TMStat2CMchnt> selectStatToClientMchntListInfo(String instId, String mcNo, String mchntNo) throws Exception;

    /**
     * 查询商户对客营销活动单日统计信息
     *
     * @param instId    法人机构号
     * @param mcNo      营销活动编号
     * @param transDate 交易日期
     * @param mchntNo   商户编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMStat2CMchntDay> 对客户营销活动商户单日统计表
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/1
     */
    List<TMStat2CMchntDay> selectStatToClientMchntDayListInfo(String instId, String mcNo, String transDate, String mchntNo) throws Exception;

    /**
     * 商户手续费优惠信息统计活动基本信息查询接口实现
     *
     * @param instId    法人机构号
     * @param mchntNo   商户编号
     * @param mchntArea 商圈编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.StatisticsStatementQueryRespInfo> 营销活动统计信息报表中营销活动信息查询结果实体类
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/3
     */
    List<StatisticsStatementQueryRespInfo> selectStatFeeMchntMcListInfo(String instId, String mchntNo, String mchntArea, String txnDate) throws Exception;

    /**
     * 手续费减免活动商户统计信息
     *
     * @param instId  法人机构号
     * @param mcNo    营销活动编号
     * @param mchntNo 商户编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMStatMfdMchnt> 手续费减免活动商户统计表
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/3
     */
    List<TMStatMfdMchnt> selectStatFeeMchntListInfo(String instId, String mcNo, String mchntNo) throws Exception;

    /**
     * 手续费减免活动商户单日统计信息
     *
     * @param instId    法人机构号
     * @param mcNo      营销活动编号
     * @param transDate 交易日期
     * @param mchntNo   商户编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMStatMfdMchntDay> 手续费减免活动商户单日统计表
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/3
     */
    List<TMStatMfdMchntDay> selectStatFeeMchntDayListInfo(String instId, String mcNo, String transDate, String mchntNo) throws Exception;

}
